﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Wizard.Source
{
    public interface IClassSource
    {
        IWizardApplication Application { get; }
        IClassMember AddMember(string memberName, string memberType);
        IMethodSource AddMethod(string methodName);

        IStatementSource GetMethod(string p);
    }

    //public class ClassSource
    //{
    //    public readonly string ClassName;
    //    public readonly IApplication Application;
    //    public readonly MethodSourceCollection Methods;

    //    internal ClassSource(IApplication application, string className)
    //    {
    //        ClassName = className;
    //        Application = application;
    //        Methods = new MethodSourceCollection(this);
    //    }

    //    internal MethodSource GetMethodByName(string p)
    //    {
    //        throw new NotImplementedException();
    //    }
    //}

    //public class ClassSourceCollection
    //{
    //    private IApplication mApplication;
    //    private Dictionary<string, ClassSource> mClassSources;

    //    internal ClassSourceCollection(IApplication application)
    //    {
    //        mClassSources = new Dictionary<string, ClassSource>(System.StringComparer.OrdinalIgnoreCase);
    //        mApplication = application;
    //    }

    //    public bool TryGetValue(string methodName, out ClassSource value)
    //    {
    //        return mClassSources.TryGetValue(methodName, out value);
    //    }

    //    public ClassSource Add(string methodName)
    //    {
    //        ClassSource result = new ClassSource(mApplication, methodName);
    //        mClassSources.Add(methodName, result);
    //        return result;
    //    }
    //}

}
